code: function navigation(summary, files) {
      // Support single files as well as list
      files = _.isArray(files) ? files : (_.isString(files) ? [files] : null);
  
      // List of all navNodes
      // Flatten chapters
      var navNodes = flattenChapters(summary.chapters);
  
      // Mapping of prev/next for a give path
      var mapping = _.chain(navNodes)
      .map(function(current, i) {
          var prev = null, next = null;
  
          // Skip if no path
          if(!current.exists) return null;
  
          // Find prev
          prev = _.chain(navNodes.slice(0, i))
              .reverse()
              .find(function(node) {
                  return node.exists && !node.external;
              })
              .value();
  
          // Find next
          next = _.chain(navNodes.slice(i+1))
              .find(function(node) {
                  return node.exists && !node.external;
              })
              .value();
  
          return [current.path, {
              index: i,
              title: current.title,
              introduction: current.introduction,
              prev: prev,
              next: next,
              level: current.level,
          }];
      })
      .compact()
      .object()
      .value();
  
      // Filter for only files we want
      if(files) {
          return _.pick(mapping, files);
      }
  
      return mapping;
  }
docs: Returns from a summary a map of /*
  {
  "file/path.md": {
  prev: ...,
  next: ...,
  },
  ...
  }