Make the filling: Heat a large skillet over medium heat. Add the ground meat and cook until browned. Drain off any excess grease.
Add vegetables: Return the meat to the skillet and add the onion, carrots, celery, and garlic. Cook until the vegetables are softened.
Season and simmer: Stir in the Worcestershire sauce, thyme, rosemary, salt, and pepper. Pour in the beef broth and bring to a simmer. Cook for 10-15 minutes, or until the sauce has thickened.
Add peas: Stir in the frozen peas and cook for 2-3 minutes, or until heated through.
Make the mashed potatoes: Place the potatoes in a large pot and cover with cold water. Bring to a boil, then reduce heat and simmer until the potatoes are tender. Drain and return to the pot.
Mash potatoes: Mash the potatoes with a potato masher or use a hand mixer. Stir in the milk, butter, salt, and pepper.
Assemble: Spoon the meat mixture into a 9x13 inch baking dish. Top with the mashed potatoes.
Bake: Bake in a preheated 375°F (190°C) oven for 20-25 minutes, or until the mashed potatoes are golden brown.