Preheat oven to 350F (175C)
Boil the pasta in a large pot of salted water until cooked (follow the instructions on the package if timing is uncertain). Drain and rinse with cold water.
Chop the onion, garlic, celery, zucchini, pepper, and mushrooms. I always add the onion, garlic, and peppers, but you can experiment with the other vegetables according to your tastes.
Heat a large frying pan or skillet on the stove and add the butter and olive oil. Once the butter has melted, add the onion and garlic and continue to cook until the onion is translucent and soft.
Add the ground beef to the mixture and, using a spatula, break of the meat and stir the mixture until the meat has been browned. Add the oregano, pepper, and salt, and mix thoroughly. Then, add the other fresh vegetables and cook for 5 minutes.
Carefully stir in the tomatoes and cooked pasta to the mixture. You may need to add a quarter cup of water if the mixture seems dry.
Grease one large (or two medium) casseroles, and fill it halfway with the mixture from the frying pan. Sprinkle about a half cup of the cheese (divide if using two casseroles). Put the remaining mixture on top of the cheese, and top with the remaining cheese.
Bake in the oven for 30 minutes (covered) and then for another 10 minutes uncovered until bubbly.
Serve with a bit of fresh basil sprinkled on top, with a loaf of crusty bread and a nice salad.