Preheat oven to 350°F.
Heat oil in large frying pan and saute the onions until softened, then add the garlic and heat for 2 minutes.
Raise the heat and add the ground beef. Cook quickly to brown, stirring occasionally. Once browned, add the carrots, celery, and pepper, paprika, garlic powder, worchestershire sauce, salt & pepper and cook several minutes.
Stir in the flour, then add the stock and wine. Heat until simmering and thickened.
Transfer the meat to a large casserole dish and cook in the oven for about 1 hour. Check the consistency from time to time and add a little more stock or wine if required. The meat mixture should be quite thick but not dry. Taste and season with more salt and pepper if required.
While meat is cooking, make the mashed potatoes. Cook the peeled potatoes in salted water for approximately 15 - 20 min or until tender. Drain well and mash with a potato masher until smooth. Add the butter and milk. If the mixture is too dry, add milk a little at a time.
On top of the meat mixture, spread the peas on half of the casserole and the corn on the other half (or whichever vegetables you prefer). Pipe or spread the potatoes on top of the vegetables.
Increase the oven to 400F and cook for 15 - 20 minutes until till golden brown. You can choose to finish it off under the broiler for a few minutes for a really crisp brown topping.