Preheat oven to 350°F.
Peel the skin off of the squash. Cut squash lengthwise in half; discard seeds and stringy inside. Cut the squash into 2 inch squares and lay flat on a parchment lined baking sheet.
Roast until squash is very tender when pierced with a fork and browned in spots, about 50 -1 hour.
Using a potato masher or fork, hand mash the squash into a purée. Try to make it smooth.
Measure out 1.5 cups of the purée and add to a bowl. If you have leftover purée, eat it as a side dish with melted butter if you’d like!
In a large mixing bowl, combine squash, flour, Parmesan, egg, egg yolk, nutmeg, cayenne, salt, pepper and mix with a spoon until the dough comes together. If the dough is very sticky, add more flour by 1/4 cup at a time.
Cut the dough into 4 equal parts. On a well floured surface, roll the 1/4th of dough out into a “rope” shape about 1 inch thick. Cut the “rope” vertically into small gnocchi shaped pieces. Add the pieces to a parchment lined baking sheet.
Continue process until baking sheet it full.
Let the gnocchi rest in the fridge while bringing water to a boil (use a 4-6 qt pot)
Working in batches, drop gnocchi in the pot and let them cook for 3-5 minutes until they float to the surface use a slotted (honey) spoon to transfer the gnocchi to a plate.
Cook butter in heavy large skillet over medium heat just until golden, stirring often for about 3-4 minutes. Add olive oil next.
Add the fresh sage and the shallot (if using) and cook for 2 minutes until the leaf crips. Add gnocchi and walnuts, cook until heated through and coated with butter, about 5 minutes. Season with salt and pepper to taste.
Serve gnocchi warm and add additional Parmesan, toasted walnuts, and garnish with crispy sage.