code: function match(k, v, p) {
      var re = recopy(ptn)
        , res = {key: k, value: v, parent: p, match: {key: false, value: false}};
      res.match.key = keys && re.test(k);
      res.match.value = values && re.test('' + v);
      //console.log('matches %s %s %s', matches, re, k);
      if(res.match.key || res.match.value) {
        res.pattern = ptn;
        list.push(res);
      }
    }
docs: console.dir(source);