Preheat the oven to 180C/360F/Gas 4.
In a saucepan large enough to hold all the meat, melt the butter and add the chopped onion. Season with salt and freshly ground black pepper and cook, without browning, on a gentle heat for 8-10 minutes, until the onions are completely soft.
Add the cream and stock and bring up to the boil and simmer for a few minutes to thicken.
Meanwhile, in a separate frying pan, heat the mushrooms with a knob of butter (you might need to do this in two batches) for 3-4 minutes, or until soft and golden brown.
Add tarragon or majoram to the mushrooms and season to taste with salt and freshly ground black pepper.
Add the meat and the mushrooms and stir well.
Meanwhile for the mashed potato, place the potatoes in a saucepan of boiling water and cook until soft. Drain the potatoes and return them to the saucepan. Mash roughly and then add the butter, egg yolk and milk and mash to a thick paste. Season, to taste, with salt and freshly ground black pepper.
Pour the cream, mushroom and meat mixture into a shallow gratin dish and top with the mashed potato.
Place in the oven for about 20-30 minutes until the potato topping is golden brown and the filling is hot.