Preheat the oven to 350 degrees F (180 degrees C).
Heat oil in a skillet set over medium heat. Add onion, garlic, thyme, rosemary, and 1/2 of the salt and pepper. Cook, stirring often, for 5 to 7 minutes.
Crumble ground beef into pan and cook until brown all over. Sprinkle with flour. Stir in ketchup, tomato juice, Worcestershire sauce and mustard. Simmer for 5 minutes. Stir in mixed vegetables. Transfer to a 9-inch baking dish.
Whip mashed potatoes with warm milk, remaining salt and pepper, butter, and garlic until very fluffy. Spread potatoes evenly over meat mixture.
Bake in the preheated oven until potatoes are golden on top, about 35 minutes.
Recipe Tips
For a meatless version, substitute 4 cups of chopped mushrooms for the meat.
For a pub-style shepherd’s pie, use ground lamb instead of beef and mark the potatoes with the tines of a fork.
This casserole can be assembled and refrigerated for up to 2 days before baking. Increase cooking time to 45 minutes.