By your psuedo code above.... I gathered this. I'm not sure if it's what you wanted...
Yeah my VB is horrible, so be nice...
Private Sub Greet()
dim strLastStage as string = "Intro"
dim strResponse as string = ""
Intro:
Print "Hi, I'm some guy."
strLastStage = "Intro"
MakeDecision:
Select Case strLastStage
Case "Intro" 'Main Decision Branching
strResponse = DisplayChoiceList()
If strResponse = "MoneyYes"
strLastStage = "MoneyYes"
ElseIf strResponse = "MoneyNo"
strLastStage = "MoneyNo"
ElseIf strResponse = "Intro"
Goto Intro:
Else
strLastStage = "End"
End If
Goto MakeDecision:'Call itself again to select correct course of action
Case "MoneyYes"
Print "Here's some money"
Print "Do whatever you want with it."
strLastStage = "Intro" 'Set back to intro to have more decisions come up
Goto MakeDecision: 'See above
Case "MoneyNo"
Print "Fine, be that way."
strLastStage = "Intro" 'See above
Goto MakeDecision:'See above
Case "End"
Print "Bye!" 'Don't do anything, the conversation has ended and the Sub will exit
End Select
End Sub