Mix the beef with the ketchup, 3 eggs, soy sauce and 100ml water for 5 mins. Mix in the onions, half the garlic and parsley.
Heat oven to 390F. Press the meat into a sausage shape about 30cm x 10cm on a baking tray. Cook for 20 mins then remove and leave to cool.
Heat the butter in a frying pan over a high heat, add the mushrooms and cook for 3 mins. Add remaining garlic and cook for a further 2 mins, pouring off the excess water from the mushrooms.
Roll pastry into a rectangle large enough to wrap up the beef. Beat remaining egg with a little water and brush over pastry.
Spread the mushroom mix into a meatloaf-size strip along the middle of the pastry. Sit the meat on top then cut pastry either side into strips from the meat outwards. Criss-cross these over the meat to enclose and tuck under ends. Brush with more egg, then place on a tray and cook for 30 mins at 375 deg F, covering after 30 mins if going too brown