Here is what i would do. I would have something that is the Main function, that calls room1 to start off with... Then IF room1 wants to call room2 it returns a special value that means i know the Main function has to call room2.
def room1():
#is you need to call room two then:
if something:
#return the number 2
return 2
def room2():
print "ROOM 2"
def Main():
var = room1()
if var == 2:
room2()
So by having return values you can make it a lot easier to see what is going on as there is only one place to look (the Main function) as well as you don't get stuck in some massive recursive loop.
Hope that helps :)