code: function (methodName, options) {
  
              // If we don't have options (a `control` instance), we'll run this
              // later.
              paramReplacer.lastIndex = 0;
              if (options || !paramReplacer.test(methodName)) {
                  // If we have options, run sub to replace templates `{}` with a
                  // value from the options or the window
                  var convertedName = options ? can.sub(methodName, [options, window]) : methodName;
                  if (!convertedName) {
                      return null;
                  }
                  // If a `{}` template resolves to an object, `convertedName` will be
                  // an array
                  var arr = can.isArray(convertedName),
  
                      // Get the name
                      name = arr ? convertedName[1] : convertedName,
  
                      // Grab the event off the end
                      parts = name.split(/\s+/g),
                      event = parts.pop();
  
                  return {
                      processor: processors[event] || basicProcessor,
                      parts: [name, parts.join(" "), event],
                      delegate: arr ? convertedName[0] : undefined
                  };
              }
          }
docs: Takes a method name and the options passed to a control and tries to return the data necessary to pass to a processor (something that binds things).