title: How to make branching dialogs in Microsoft Bot Framework
body: <p>I am using MS bot framework and I am trying to build a bot that would handle dialogs that can branch instead of just a flat scenario. </p>
  
  <p>For example, in the first message the bot asks user a question, and depending on the answer launches one of the three child dialogs, which, in turn, can launch their own child dialogs depending on user input. </p>
  
  <p>So i'm looking for something like this: </p>
  
  <pre><code>if (userAnswer == "option 1") {
      LaunchSupportDialog();
  }
  else {
      LaunchNewOrderDialog();
  }
  </code></pre>
  
  <p>The examples provided by Microsoft are either flat (e.g. a bot that can handle sandwich orders, without branches, executing each step in succession), or where the branching is done automatically by LUIS based on the user intent. </p>
  
  <p>I am looking for something much less smart so it looks like I'm just missing some kind of method or class that would be able to do that. </p>
  
  <p>The docs state: </p>
  
  <blockquote>
    <p>Explicit management of the stack of active dialogs is possible through
    IDialogStack.Call and IDialogStack.Done, explicitly composing
    dialogs into a larger conversation. It is also possible to implicitly
    manage the stack of active dialogs through the fluent Chain methods.</p>
  </blockquote>
  
  <p>but I didn't find any examples of how to create a new IDialogStack object, or how to explicitly call .Call() or .Done(), or use the Chain class methods for that. </p>