i've found a good alternative is returning functions
eg. you have a function like this:
def cycle(func): while True: func=func()
then you start with cycle(main)
def main(): return intro
if __name__ == '__main__: cycle(main)
and then main returns the next function, and following functions return functions..
def intro(): if thisthing: return thisfunc if thatthing: return thatfunc
return is being used like goto
you can see how i use it here: godschat
read from the bottom up