docs: function match (expression, cb) {
    return Array.isArray(expression)
      ? traverse(this, function (node) {
        for (var i = 0; i < expression.length; i++) {
          if (compare(expression[i], node)) return cb(node)
        }
  
        return node
      })
      : traverse(this, function (node) {
        if (compare(expression, node)) return cb(node)
  
        return node
      })
  }