Photograph: Dan Jones
Preheat the oven to 200°C, fan 180°C, gas 6. Halve the tomatoes and place, cut-side up, on a large baking tray. Season, then roast for 45 minutes. When they are ready, take them out of the oven and set aside. Reduce the oven temperature to 180°C, fan 160°C, gas 4.
Meanwhile, trim and thinly slice the aubergines, then halve the rounds. Preheat a griddle and, when hot, lightly spray with oil and griddle the aubergine slices for 2-3 minutes on each side. Add another spray of oil if you need to as they cook. Set aside.
Melt the butter in a pan and stir in the flour. Cook over a low heat for a minute. Take the pan off the heat and add the milk, little by little, whisking each time until smooth. Once all the milk is incorporated, return the pan to a medium-to-low heat. Bring the sauce to a simmer and cook for 4-5 minutes or until thickened, stirring all the time. Take the pan off the heat and stir in the ricotta, a grating of nutmeg and some seasoning.
Spoon a third of the sauce into a 20 x 28 x 6cm deep ovenproof dish, then add three pasta sheets. Place half the roasted tomatoes on top of the lasagne sheets, followed by half the griddled aubergine pieces. Add another third of the sauce. Mix the peppers and chickpeas and scatter the whole lot over the sauce. Next add another three pasta sheets, the rest of the aubergine, three more sheets, the rest of the tomatoes and, finally, the rest of the sauce, seasoning each layer.
Drain and chop the mozzarella and scatter on top, along with the cheddar, if using. Bake for 40-45 minutes or until bubbling and lightly golden.
Get ahead: make and assemble the lasagne a day ahead; chill. Bring to room temperature before baking. Can be frozen – defrost, then bake as above.
Kitchen secret: for a change, replace the aubergine and chickpeas with griddled courgette and cannellini beans.