code: function loadTemplatesFiles (dir, files, options, templates) {
      // require files
      if (!Array.isArray(files)) {
          return Promise.resolve()
      }
      // load template for each file
      return Promise.each(files, file => {
          // get absolute file from dir
          var absFile = dir+'/'+file
          // get express template name by stripping off extension
          file = file.replace(GLOBAL.extRegExp, '')
          // if template has already been defined then do not replace so that
          // first incidence of file in multiple paths is used
          if (templates[file]) {
              return
          }
          // load template
          var promise = templates[file] = loadTemplate(absFile, options)
          // once template is loaded replace promise with template
          .then(template => {
              templates[file] = template
          })
          // wait for template to load
          return promise
      })
  }
docs: @function loadTemplatesFiles
  
  @param {string} dir
  @param {array} files
  @param {object} options
  @param {object} templates
  
  @returns {Promise}