Thanks! There's not really an algorithm in mind, it's more or less completely random. Each room and hallway (let's say tiles) has connection points with open geo (no walls or anything) then the level gets made by connecting each tile via the connection points.
Depending on the state of the connection point, it then fills in the gap with a doorway (if it's connecting) or a wall (If there's nothing connecting.) If you're interested, Doom (2016)'s snapmap uses a similar tile system just without the procedural generation.