Place bacon in a large, deep frypan. Cook over medium high heat until evenly brown. Drain, crumble or dice and set aside.
In a large saucepan with boiling salted water, cook pasta until al dente. Drain.
In a medium frypan saute the diced onion and garlic. Take off heat and add cooked bacon and set aside.
Sauce: In a medium saucepan melt the butter over low heat. Once melted, add the flour and stir constantly for 2 minutes. Gradually add milk and continue stirring until thickened. Stir in 2 cups of the grated cheddar cheese and stir until melted.
Combine cooked pasta, sauteed vegetables and sauce. Pour into a 2 litre casserole dish. Add the last cup of grated cheddar cheese to top of mixture.
Bake uncovered in preheated oven until cheese on top is melted and brown, 15 to 20 minutes. Serve warm.