code: function getOrCompile (patternStr) {
      var tree, fn;
      if (!patterns.hasOwnProperty(patternStr)) {
        tree = parse(patternStr);
        if (!normalized.hasOwnProperty(tree.pattern)) {
          fn = compile(tree);
          fn.pattern = tree.pattern;
          normalized[tree.pattern] = fn;
        }
        patterns[patternStr] = normalized[tree.pattern];
      }
      return patterns[patternStr];
    }
docs: Retrieves a patternFn from the cache or compiles it if it's not there.