code: function requireDependencies(dependencies) {
      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  
      var promise = new _es6Promise.Promise(function (succeed, fail) {
          var requirements = {};
  
          // no requirements
          if (!(dependencies instanceof Array)) {
              return succeed(requirements);
          }
  
          // check if succeeded
          function checkStatus() {
              if (Object.keys(requirements).length === dependencies.length) {
                  succeed(requirements);
              }
          }
  
          dependencies.forEach(function (dependency) {
              if (packages.has(dependency)) {
                  requirements[dependency] = packages.get(dependency);
              } else {
                  events.once("load:" + dependency, function (requirement) {
                      requirements[dependency] = requirement;
                      checkStatus();
                  });
              }
          });
  
          // First check
          checkStatus();
      });
  
      return typeof callback === "function" ? promise.then(callback) : promise;
  }
docs: Resolve an array of dependencies
  
  @param dependencies
  @returns {Promise}