docs: function children(tree, query, options) {
        var compiledQuery = query ? _.matches(query) : null;
  
        var settings = _.defaults(options, {
          childNode: ['children']
        });
  
        settings.childNode = _.castArray(settings.childNode);
        var rootNode = query ? treeTools.find(tree, query) : tree;
        var seekStack = [];
  
        var seekDown = function seekDown(branch, level) {
          if (level > 0) seekStack.push(branch);
          settings.childNode.some(function (key) {
            if (branch[key] && _.isArray(branch[key])) {
              branch[key].forEach(function (branchChild) {
                seekDown(branchChild, level + 1);
              });
              return true;
            }
          });
        };
  
        seekDown(rootNode, 0);
        return seekStack;
      }