Heat the oil in a large, heavy-bottomed pot over medium heat. Add the shallots and sauté for 2-3 minutes or until soft. Add the garlic and cook, stirring, for 30 seconds or until fragrant.
Add the mushrooms and thyme and cook, stirring regularly for 2 minutes. Stir in the milk, soy sauce and curry powder, then add the stock.
Add the pasta and stir it through the liquid making sure as much of it is submerged as possible. Bring the pot up to the boil and then reduce the heat to low/medium.
Cook for 12-13 minutes, stirring regularly, until the pasta is almost al dente. You want it slightly less cooked than you would normally like it - it will continue cooking in the next step, don't worry.
Remove the pot from the heat and throw in the baby spinach and the vegan butter. Stir again, season with salt and pepper and allow the pot to sit with a lid on for around 3-5 minutes. The pasta will finish cooking and the sauce will thicken.
Serve with vegan parmesan and cracked pepper.