Graph-based approach
You decide exactly how many rooms you want in a level and how they should be connected, and the generator produces levels that follow exactly that structure. Do you want a boss room at the end of each level? Or a shop room halfway through the level? Everything is possible...