Heat olive oil in a large skillet over medium-high heat. Add chopped onions and cook for about 5 minutes until softened.
Add ground lamb to the skillet. Break it up with a spoon and cook until browned. Stir in dried rosemary, thyme, salt, and pepper.
Mix in Worcestershire sauce and minced garlic. Cook for 1 minute.
Sprinkle in the flour and add the tomato paste. Stir well to combine without lumps. Pour in beef broth and add frozen peas and carrots along with frozen corn. Bring to a simmer and let it cook for about 5 minutes until the sauce thickens. Remove from heat.
Preheat your oven to 400°F. Place cubed potatoes in a large pot and cover with water. Bring to a boil and cook until fork-tender, about 12-15 minutes. Drain the potatoes and return them to the pot. Add 6 tablespoons of butter, the half-and-half, garlic powder, and 1/4 teaspoon extra black pepper. Mash until smooth.
Spread the meat filling evenly in a 9x9-inch baking dish. Top with the mashed potatoes, spreading evenly to seal the edges. Dot with the remaining 2 tablespoons of butter. Sprinkle with Parmesan cheese if desired. Bake uncovered for 25-30 minutes until the top is lightly golden. Let stand for 5-10 minutes before serving. Garnish with parsley.