code: function Resolver(options) {
    this.options = options || {};
    utils.define(this, '_callbacks', {});
    utils.define(this, 'fns', []);
    this.cwd = this.options.cwd || process.cwd();
    this.initCache();
  }
docs: Iterates over [npm-paths][] and emits `file` for every resolved filepath, and `match`
  for files that match any specified [matchers][]. Paths are cached in memory using a few
  different objects:
  
  - `cache.paths`: array of absolute directory and file paths
  - `cache.names`: object of [vinyl][] files, where `file.name` is the object key. `file.name` is the basename of the filepath, but it's aliased as `name` so we can use it without touching the getters/setters on the vinyl file.
  - `cache.files`: array of [vinyl][] files
  
  ```js
  var resolver = new Resolver();
  resolver.resolve();
  console.log(resolver);
  ```
  @param {Object} `options` Specify a cache to use on `options.cache`.
  @api public