code: function (route, data) {
              var count = 0,
                  i = 0,
                  defaults = {};
              // look at default values, if they match ...
              for (var name in route.defaults) {
                  if (route.defaults[name] === data[name]) {
                      // mark as matched
                      defaults[name] = 1;
                      count++;
                  }
              }
              for (; i < route.names.length; i++) {
                  if (!data.hasOwnProperty(route.names[i])) {
                      return -1;
                  }
                  if (!defaults[route.names[i]]) {
                      count++;
                  }
  
              }
  
              return count;
          }
docs: ## can/route/route.js ## route.js `can.route` _Helps manage browser history (and client state) by synchronizing the `window.location.hash` with a `can.Observe`._ Helper methods used for matching routes.