Not really short, but... You want to snap A on B. Set the snapping to *"edge center"* and snap with *"active"*. Add an empty and bring it on the side of A. Select A and the empty with empty as active. Snap them 2 on the side of B: that aligns the rooms. Move the empty on top of the door part. Set snapping to *"edge perpendicular"*. Move A and the empty (active) to the top of B: that aligns the door. (I'll illustrate in a minute)