Bechamel: melt the butter in a saucepan over medium heat. Add the flour and stir until a smooth paste forms. Gradually whisk in the milk. Bring to a boil while whisking constantly, then lower the heat and simmer gently for a few minutes. Season with salt and pepper and set aside.
Pasta: in a large pot of boiled salted water, cook the pasta until al dente. Drain and set aside.
In a large skillet over medium-high heat, sauté the mushrooms in the butter until they release their liquid and brown. Season with salt and pepper. Add the onions and garlic. Continue cooking for about 2 minutes. Add the pasta and heat through. Deglaze with the vodka, flambéing if desired. Add the béchamel and tomatoes and stir to coat the pasta. Adjust the seasoning.
Garnish: transfer to a large serving bowl. Garnish with cheese, green onions and pine nuts. Serve immediately.