title: Bot Framework: Implement finite/multi state conversation
body: <p>This is probably a duplicate of <a href="https://stackoverflow.com/questions/40724632/how-to-do-a-decision-tree-on-ms-bot-framework">this question</a> but I'll still go ahead and ask it.</p>
  
  <p>Are there any multi-state message handlers in the MS Bot Framework that one could use and implement a conversation state machine neatly, something like the one mentioned <a href="https://msdn.microsoft.com/en-us/library/office/dn454839.aspx#CreateHandlers" rel="nofollow noreferrer">here</a> under the "<strong>Handling a multi-state conversation</strong>" heading.</p>
  
  <p>I've implemented this currently by handling the user's utterance in an intent handler. The intent handler prompts the user with a question having three possible answers (for now), namely <em>yes / no / maybe</em> using:</p>
  
  <p><code>PromptDialog.Choice(context, AfterChoice_myUserChoiceHandlerL1, myOptionsList, ...)</code></p>
  
  <p>The user's answer is then handled in the <code>AfterChoice_myNextUserChoiceHandlerL1</code> method by using a switch case construct. <code>AfterChoice_myNextUserChoiceHandlerL1</code> can either end the conversation if the final state is reached, or in turn ask another <em>yes / no / maybe</em> question like this:</p>
  
  <p><code>PromptDialog.Choice(context, AfterChoice_myUserChoiceHandlerL2, myOptionsList, ...)</code></p>
  
  <p>My concern: This is indeed a quick and (very) dirty workaround and I'd therefore like to know the best way to implement this.</p>