For the pot-roasted filling, preheat the oven to 200C/400F/Gas 6.
Heat the olive oil in a large casserole over a medium heat. Season the lamb shoulder, to taste, with salt and freshly ground black pepper.
Add the seasoned lamb shoulder to the casserole and cook, turning regularly, until browned all over. Remove the lamb from the casserole and set aside.
Add the whole onions to the casserole the lamb was cooked in and fry on all sides for 4-5 minutes, or until golden-brown.
Add the garlic and three of the rosemary sprigs and stir well, then return the browned lamb to the casserole and pour over the red wine and stock.
Spread 25g/1oz of the butter over the parts of the lamb not covered by liquid, then place the remaining rosemary sprig on top.
Transfer the casserole to the oven and cook, uncovered, for two hours, or until the lamb is tender and the top is crisp.
Remove the lamb and onions from the cooking juices and set aside (keep warm). Strain the cooking juices into a saucepan and heat over a low to medium heat.
Mix together the flour and remaining butter until well combined, then whisk it into the strained pan juices. Continue to whisk until the mixture forms a thick gravy.
Meanwhile, tear the meat into large pieces using a fork. Place the lamb pieces into the bottom of a medium casserole. Add the cooked onions and pour over the gravy.
Meanwhile, for the topping, preheat the grill to its highest setting. Boil the potatoes in a pan of salted water for 12-15 minutes, or until tender. Drain well, then return the potatoes to the pan. Place the pan over the heat for a few seconds to drive off any excess moisture. Remove the pan from the heat and mash the potatoes until smooth.
Warm the milk over a low heat in a separate pan, then add the milk and the butter to the mashed potatoes and mash again until smooth. Season, to taste, with salt and freshly ground black pepper.
Spoon the mashed potatoes into a piping bag. Pipe the mashed potatoes over the meat filling in the casserole.
Place the casserole under the hot grill and grill until golden-brown.
Meanwhile, for the Vichy carrots, heat the butter, sugar and water in a small pan over a medium heat. When the butter has melted, add the carrots and cover the pan with a lid. Cook for 6-8 minutes, or until tender.
Meanwhile, cook the purple sprouting broccoli in a pan of boiling, salted water for 3-4 minutes, or until tender, then drain well.
To serve, spoon a portion of the pot-roasted shepherd's pie into the centre of each of four serving plates. Spoon the Vichy carrots and purple sprouting broccoli alongside.