In a large skillet over medium heat add olive oil, onion and mushroom cook for 5 minutes allowing the onion to soften and the mushrooms to release liquid. Once most of the liquid has dissipated, add sausage crumbling it with a wooden spoon into small pieces as it cooks.
Stir and cook all ingredients until the onion is softened and the sausage is no longer pink and is starting to brown. Set aside.
To make a béchamel sauce:
Melt butter in a medium saucepan over medium heat. Add flour and stir until well incorporated. Slowly, add milk and whisk together until smooth. Continue whisking until sauce comes to a slow boil and starts to thicken. Stir half this sauce into the sausage mixture. (Reserve the other half to pour on top of the cannelloni.) Add cubed mozzarella to the sausage and sauce mixture and continue stirring while slowly whisking in the egg yolks; mix to combine cover and set aside.
Cook pasta according to package directions, rinse under cold water and reserve being careful to keep the pasta from breaking.
Preheat oven to 400*. Spread 3/4 cup of the reserved béchamel sauce on the bottom of a 9x13” oiled baking dish. Spoon filling into each pasta tube. Start from one end and using your finger to push the filling all the way through.
Nestle the cannelloni in the sauce and cover with remaining béchamel sauce. Top with mozzarella and parmesan cheese and a sprinkling of oregano.
Bake in preheated oven for 45 minutes or until heated through; and cheese starts to turn golden. Remove from oven, let stand for 5 minutes then serve.