Melt the butter in a saucepan. When it starts to bubble, stir in the flour, and cook for 1 minute. In a separate pot, heat the milk to just below boiling. Slowly pour the milk mixture into the flour mixture whisking constantly. Cook until the mixture bubbles and becomes thick. Remove the pot from the heat and add the spices, cheddar, fontina, and Gruyere.
Cook the pasta for 2 to 3 minutes less than al dente in boiling, salted water (the outside of the shell should be cooked but the inside is not).