Cut the broccoli into florets and chop the green stems into small chunks.
Heat a small frying pan until hot. Add the pine nuts and dry fry over a medium-low heat for a few minutes, until toasted and golden brown.
Bring a pan of salted water to the boil, then add the onion and penne. Cook according to the pasta packet instructions, adding the broccoli 3 minutes before the end. Drain the pasta and vegetables, refreshing the broccoli separately in cold water to stop the cooking and to set the colour.
Meanwhile, fry the bacon in a large, dry pan over a medium-high heat for about 10 minutes, or until crisp and golden-brown, stirring often. Reserve 2 tablespoons of the cooked bacon and add the remainder to the pasta.
Add the pesto, tomatoes and broccoli to the cooked pasta mixture. Season with black pepper and stir.
Tip into a serving dish, scatter with toasted pine nuts, the reserved bacon and Parmesan and serve.