docs: function calculateDependencyTree(initList) {
          if (initList) {
              return _.map(initList, function (initItem) {
                  return [initItem];
              });
          } else {
  
              var id;
              for (id in dependencyMap) {
                  var mod = moduleMap[id];
                  if (mod && mod.getDependencies) {
  
                      //dynamically look up deps with mod's getDependency function --used by express
                      var deps = normalizeServiceNames(mod.getDependencies.call(null, injectedMap['service-loader']));
                      debug('Found additional dependencies for %s', id, deps);
                      deps = _.uniq(deps.concat(dependencyMap[id]));
                      depCalc.addNode(id, deps);
                  } else {
                      depCalc.addNode(id, dependencyMap[id]);
                  }
              }
  
              //injected modules have no dependencies by default
              for (id in injectedMap) {
                  if (!dependencyMap[id]) { //when you do an inject, you can specify a dependency
                      depCalc.addNode(id, []);
                  }
              }
  
              return depCalc.calcGroups(); //could throw an error
          }
      }