Heat the oil in a large heavy-based saucepan over high heat. Add the beef and cook, in 3 batches, stirring, for 5 mins or until well browned. Transfer to a heatproof bowl. Reduce heat to medium. Add the onion and garlic to the pan and cook, stirring, for 5 mins or until soft.
Add the flour and cook, stirring, for 30 secs. Gradually add the stock, stirring and scraping the base of the pan. Stir in the tomato. Return the beef to the pan. Bring to a simmer. Reduce heat to low and cook, covered, for 1 hour.
Add the carrot and mushroom to the pan and cook for 30 mins or until meat is very tender. Uncover and cook, stirring occasionally, for a further 30 mins or until liquid has reduced and thickens. Set aside to cool.
Preheat oven to 190°C. Transfer the beef mixture to a 6-cup (1.5L) baking dish. Place the pastry sheet over the beef mixture to enclose the filling, pressing the edges to seal. Use a knife to make a few cuts into the centre of the pastry. Whisk the egg in a small bowl with a little water. Brush the egg mixture over the pastry. Bake for 30 mins or until the top is golden.
Meanwhile, heat the mashed potato following packet directions. Serve the pie with the mashed potato and green beans.