docs: def _generate_next_token_helper(self, past_states, transitions):
          """ generates next token based previous states """
          key = tuple(past_states)
          assert key in transitions, "%s" % str(key)
          return utils.weighted_choice(transitions[key].items())