Finely dice 2 onions and 2 carrots.
In a large frying pan, heat 2 tbsp butter (or margarine). Brown 400 g (14 oz) ground lamb or beef in batches. Remove to a plate as you go to avoid overcrowding.
Add more butter if needed, then sauté the onion and carrot until soft. Return the meat to the pan. Stir in 1 tbsp tomato paste and 2 tsp Worcestershire sauce.
Sprinkle in 2 tbsp flour, stir well, then gradually add 500 ml (2 cups) beef or chicken stock. Bring to a boil, then reduce heat and simmer for 15–20 minutes, until thickened.
Stir in 150 g (1 cup) frozen peas, 1 tbsp chopped rosemary, and 1 tbsp chopped thyme. Season with salt and pepper to taste.
Peel and cube 1 kg (2.2 lbs) potatoes. Boil until fork-tender, then mash. Stir in 200 ml (¾ cup + 1 tbsp) milk, 2 tbsp butter, ½ tsp nutmeg, salt and pepper to taste.
Spoon the meat filling into a deep baking dish. Spread mashed potatoes evenly over the top. Sprinkle with 200 ml (¾ cup + 1 tbsp) grated cheese.
Bake at 180°C (350°F) for 35–40 minutes, or until bubbling and golden on top.