Set the oven to 400°F.
Cook the pasta in boiling water for 10-14 mins, or as directed on the packet, until just tender, then drain well.
Meanwhile, heat the oil in a pan. Add the onion and cook it over a medium heat for 4-5 mins, until it starts to soften. Add the meat and celery to pan and cook for a further 5-8 mins, stirring well so the meat browns all over.
Add flour to the pan and cook for a further minute, stirring until the mixture has thickened, then stir in the tomatoes and 2/3 cup boiling water. Stir well while the mixture comes to the boil. Stir in bouillon cube, then add the Worcestershire sauce and seasoning to taste. Simmer for 2-3 minutes Remove the pan from heat and stir in drained pasta. Tip the mixture out into a gratin dish and level the surface.
To make the topping, melt the butter in a pan and add flour. Cook for 1-2 mins until mixture forms a thick paste, then gradually pour in the milk, beating well and allowing mixture to come to the boil between each addition of liquid. Remove pan from heat and add mustard powder and half the cheese. Season to taste. Spoon sauce over pasta, spreading it to cover. Sprinkle remaining cheese over.
Bake in the centre of the oven for 30-40 mins, or until the mixture is gollden on top and sizzling hot. Serve immediately.
To freeze: Prepare from steps 2-5, then allow mixture to cool completely. Cover the dish well and freeze for up to 1 month. Defrost, then bake, allowing a little extra cooking time.