- Preheat the oven to 400°F (200°C or 180°C for a fan oven). 
- Lightly grease a 9 x 13 inch casserole dish with vegetable oil. 
- Place the chopped onions, eggplant, zucchini, red peppers and mushrooms on a large baking tray and toss with 2 tablespoons of the olive oil. (You’ll need the rest later.) 
- Roast the vegetables for 15 minutes. 
- Remove from the oven, drizzle over the remaining 2 tablespoons of olive oil and turn the vegetables. 
- Return to the oven for a further 20 minutes. 
- Meanwhile, heat the 2 teaspoons of olive oil in a medium saucepan over medium heat. (Don’t be tempted to use a smaller saucepan as you are going to add the roast vegetables later.) 
- Toss in the garlic and warm it through but don’t let it take on any colour. 
- Add the tomato sauce or passata and the pesto (if using). 
- Add the oregano and salt and pepper to taste. 
- Turn the heat down and simmer for about 5 to 10 minutes, stirring occasionally. 
- Remove the roast vegetables from the oven when they are cooked and add them to the tomato sauce mixture in the saucepan. 
- Stir through gently, cover and remove from the heat. 
- In another small saucepan, melt the butter over medium heat. 
- Whisk in the flour. 
- Cook for two to three minutes, whisking constantly. 
- Gradually add the milk, whisking after each addition, to make a fairly thick sauce. 
- Add salt and pepper to taste. 
- Place the roast vegetable and tomato mixture in the bottom of the casserole dish, spreading it out evenly. 
- Top with a fairly even layer of spinach, if you are using it. 
- Spread the white sauce over the top of the casserole. Mix the cheeses together and sprinkle over top. 
- Bake for 20 to 30 minutes, or until the top begins to turn golden brown. 
- Enjoy with a salad and /or crusty bread.