Canned beans are ideal for this roast. I’ve chosen cannellini but you could use borlotti, flageolet or even a mixture of beans.
Using a sharp knife, cut small slashes all over the lamb, then push a slice of garlic into each. Put half the thyme, 3 tbsp olive oil, wine, lemon zest and a good grinding of black pepper into a large freezer bag. Addthe lamb, tie the bag tightly and refrigerate for at least 4 hrs, preferably overnight.
Heat oven to 220C/fan 200C/gas 7. Put the rest of the thyme into the bottom of a roasting tin then lift the lamb out of the
marinade and sit on top of the thyme. Roast for 20 mins, then toss onions into the pan, drizzle with a little oil, then turn the oven down to 190C/fan 170C/gas 5. Roast for 15 mins/450g for medium. Meanwhile, strain the marinade into a pan, add most of the stock and boil until reduced by two thirds (this will take about 20 mins). Set aside. Gravy can be made ahead or the day before if necessary, as long as the meat has marinated for 4 hrs.
Once the lamb is ready, take out and rest on a board, wrapped in a tent of foil to keep warm. Set the onions aside in a bowl. Put the roasting tin onto a low heat and add the balsamic vinegar to the tin with a splash more stock and scrape all the meaty bits from the bottom. Tip into the jug with the gravy.
For the beans, add 2 tbsp oil to the roasting tin. Add the rosemary and tomatoes, and fry for 1 min until the rosemary smells aromatic. Tip in the beans, the red onions and the final splash of stock, then warm through. Season, then stir in the parsley just before serving. Serve on a platter, topped with the lamb.