Heat the oven to 220C/200C fan/gas 7. Tip the milk, butter and flour into a large saucepan and bring to a simmer, whisking continuously until you have a smooth, thick sauce, about 3-4 mins. Don’t worry if there are a few lumps – the sauce will be blended later. Season well, then add the mustard, both cheeses and spinach.
Meanwhile, cook the pasta in boiling salted water for 5 mins. Add the broccoli and continue cooking until the pasta is cooked through and the broccoli is soft. Drain.
Transfer half the cooked broccoli to the cheese sauce. Whizz the cheese sauce until smooth, creamy and bright green using a hand blender (or stand mixer). Loosen with a splash of milk, if needed. Stir in the pasta, remaining broccoli and the peas and tip into a large baking dish.
If making the topping, put the bread, basil, oil and half the nuts or seeds in a food processor and whizz to coarse, green crumbs. Scatter over the pasta along with the remaining nuts or seeds. Bake for 20-25 mins, until the topping is crunchy and the sauce is bubbling. Will keep in an airtight container in the freezer for up to three months.