   #   # looks for files in this order:
   #   # wesabe/math/vector.js
   #   # wesabe/math.js
-  #   # wesabe/math/__package__.js
   #   wesabe.require("math.vector");
   #
   #   # specifying an asterisk last changes the order:
-  #   # wesabe/math/vector/__package__.js
   #   # wesabe/math/vector.js
   #   # wesabe/math.js
-  #   # wesabe/math/__package__.js
   #
   require: (module) ->
     return required[module].exports if required[module]

  # Transforms an array of module parts to a list of possible Uris.
  # @method _getUrisForParts
  # @param parts {Array} The list of module parts.
  # @param lookForPackages {Boolean} Whether to look for a package file at all.
  # @param preferPackages {Boolean} Whether to look for a package file first.
  # @private
  #
  _getUrisForParts: (parts, scheme, lookForPackages, preferPackages) ->
    s = wesabe.baseUrlForScheme(scheme)
    u = (pp) ->
      base = [s].concat(pp).join('/')

    if parts.length is 0
      return []

    uris = []

    # A/B/C.{js,coffee}
    uris = u(parts).concat(uris)

    # start over with A/B
    uris.concat(wesabe._getUrisForParts(parts[0...parts.length-1], scheme))

  #
  # Loads (and evals) the JS file at +uri+. Returns true on success.
