docs: function render(path, options) {
  
      var view = this, // The Express View object to which this method is bound
          settings = options.settings || {},
          hoganOptions = extend(settings.Hogan || {}, options.Hogan || {}),
          template, partials, layout = options.layout || settings.layout;
  
      if (view.template) {
          template = view.template;
          partials = view.partials;
          if (typeof options.partials === 'object') {
              // Allows manual override of partials
              // but does NOT re-resolve.
              partials = extend(view.partials, options.partials);
          }
      } else {
          template = view.template = fcompile(path, hoganOptions, options.cache);
          partials = view.partials = {};
          resolvePartials(template);
      }
  
      if (layout) {
          var _template = template;
          if (view.layouts && view.layouts[layout]) {
              template = view.layouts[layout];
          } else {
              path = view.lookup(extname(layout) ? layout : layout + view.ext);
              template = fcompile(path, hoganOptions, options.cache);
              resolvePartials(template);
              if (options.cache) {
                  if (!view.layouts) view.layouts = {};
                  view.layouts[layout] = template;
              }
          }
          partials = clone(partials);
          partials.content = _template;
      }
  
      /*
       * Ensure that all referenced partials are resolved,
       * compiled and cached within `view.partials`.
       */
      function resolvePartials(template) {
  
          var keys = {};
          if (template.partials) {    // Hogan 3
              var p = template.partials;
              Object.keys(p).forEach(function(i) {
                  keys[ p[i].name ] = 1;
              });
          } else if (template.text) { // Hogan < 3
              Hogan.scan(template.text, hoganOptions.delimiters).forEach(function(token) {
                  if (token.tag === '>') {
                      keys[ token.n ] = 1;
                  }
              });
          }
  
          Object.keys(keys).forEach(function(key) {
              if (key in partials) return;
  
              if (typeof options.partials === 'object' && key in options.partials) {
                  template = options.partials[key];
              } else if (typeof settings.partials === 'object' && key in settings.partials) {
                  template = settings.partials[key];
              } else {
                  var path = view.lookup(key + view.ext);
                  template = fs.existsSync(path) ?
                      fcompile(path, hoganOptions, options.cache) : null;
              }
  
              if (template) {
  
                  if (template instanceof Hogan.Template) {
                  } else {
                      // FYI, Hogan.compile does its own caching
                      template = Hogan.compile(template, hoganOptions);
                  }
  
                  partials[key] = template;
                  resolvePartials(template);
              } else {
                  partials[key] = template;
              }
          });
      }
  
      return template.render(options, partials);
  }