code: function loadModules(paths, options) {
      options = options || {};
      var load = function(file, dir) {
          return require(path.join(dir, file));
      };
  
      if (options.cb instanceof Function) {
          load = function(file, dir) {
              return options.cb(require(path.join(dir, file)));
          };
      }
  
      return fileIterator(paths, options, function(file, dir) {
          if (require.extensions[path.extname(file)]) {
              debug('Loading: ', dir + '/' + file);
              try {
                  return load(file, dir);
              } catch(e) {
                  debug('FAILED to load: ', dir + '/' + file, e.message);
                  throw e;
              }
          }
      });
  }
docs: @module ModuleLoader
  @class
  @public
   
  recursive wrapper around native `module.require`
  
  @function loadModules
  @memberof ModuleLoader
  @static
  @example
  require('bi-service').moduleLoader.loadModules
  
  @param {Array|String} paths - collection of files/dirrectories, or single string path
  @param {Object}   [options]
  @param {Function} [options.cb] - the fn is provided with each required module
  @param {Array}    [options.except] - collection of files/directories that should be excluded