docs: function flexiRequire(browserify, options) {
  	hookFilter(browserify, options);
  
  	browserify._bpack.hasExports = true; // NOTE : need require from other bundle file
  
  	if (!options.noreset) browserify.on('reset', reset);
  	reset();
  
  	var cached = new Cached(browserify);
  	var mcached = new mutils.Cached(browserify);
  
  	function reset() {
  		var stream = through.obj(
  			function transform(row, enc, next) {
  				this.push(row);
  				next();
  			},
  			function flush(done) {
  				var self = this;
  				collectModules(cached, mcached, options,
  					function (new_requires) {
  						for (var key in new_requires) {
  							self.push(new_requires[key]);
  						}
  						self.push(null);
  						done();
  					});
  			});
  		browserify.pipeline.get('record').push(stream);
  	}
  
  	return browserify;
  }