On medium heat in a heavy-based saucepan add oil, onion, thyme, and marjoram and sauté. Cook about 5 minutes or until onions are translucent.
Add the lamb to the saucepan and the Worcestershire sauce and braise for 5 to10 minutes or until meat is browned, sautéing to brown all sides.
Add tomatoes, rosemary, beef stock, vegetables, salt, and pepper to the meat. Mix all together, breaking up the tomatoes until smooth with a spoon.
Turn down heat to low-medium), cover and cook for 15 minutes.
Turn heat down to low. Sprinkle flour over the surface of the food in the pot and blend in thoroughly with a spoon. Cover and cook until meat is tender. Takes about an hour. Just check frequently and stir to prevent it from burning. Season to taste.
Prepare potato topping by adding potatoes to the saucepan and cover with cold water, bring to a boil over high heat. Once boiling, turn down the heat to low-medium and cover, boil until potatoes are fork-tender.
Uncover meat and vegetable mixture and place in a prepared oven dish. Set aside.
Once potatoes are fork-tender, drain off water. Add butter, salt, 1/2 cup of cheese, and milk. Mash with a potato masher or blend with a hand blender until smooth.
Add mashed potato mixture, a spoonful at a time to the top of meat and vegetables spread evenly over the top. Scatter the remaining ½ cup of shredded cheese over the top.
Bake in oven uncovered for 15 minutes or until cheese is melty and browned.