docs: function (element, type, original, handler, fn) {
                  if (!type || type === '*') {
                    // search the whole registry
                    for (var t in map) {
                      if (t.charAt(0) === '$')
                        forAll(element, t.substr(1), original, handler, fn)
                    }
                  } else {
                    var i = 0, l, list = map['$' + type], all = element === '*'
                    if (!list)
                      return
                    for (l = list.length; i < l; i++) {
                      if (all || list[i].matches(element, original, handler))
                        if (!fn(list[i], list, i, type))
                          return
                    }
                  }
                }