code: function _walk(tree, branch, branchToken = 'general') {
    tree[branchToken] = tree[branchToken] || _initBranch(branchToken);
  
    branch.forEach((leaf) => {
      switch (leaf[0]) {
        case 'name': {
          _addToTree(tree, branchToken, leaf[1]);
          break;
        }
        case '#': {
          const [, keyword, remainder] = leaf[1].toLowerCase().match(LEAF_REGEX);
  
          if (Utils.includes(Goatee.CONDITIONALS, keyword)) {
            if (this.options.parseConditionals) {
              _addToTree(tree, branchToken, Utils.trim(remainder));
            }
            _walk.call(this, tree, leaf[4], branchToken);
          } else {
            _walk.call(this, tree, leaf[4], leaf[1]);
          }
  
          break;
        }
        default: {
          // Do nothing
        }
      }
    });
  
    return tree;
  }
docs: @private
  
  Recursively walks Mustache tokens, and creates a tree that Vapid understands.
  
  @param {Object} tree - a memo that holds the total tree value
  @param {array} branch - Mustache tokens
  @param {string} branchToken - current branch name and params
  @return {Object} tree of sections, fields, params, etc.
   /* eslint-disable no-param-reassign