code: function iterator(filename, callback) {
      
      async.forEach(
        
          filters
        
        , function(filter, callback) {
            
            var test
              , regexp
              , matches
              
              , continuation  = filter[1]
              
              , file_path     = path.join(dir_path, filename)
              , emitter
              ;
            
            if (typeof filter[0] === 'string') {
              
              regexp = new RegExp('^' + filter[0] + '$');
              matches = regexp.exec(filename);
              
              checkAndContinue(null, matches);
              
            } else if (filter[0] instanceof RegExp) {
              
              regexp  = filter[0];
              matches = regexp.exec(filename);
              checkAndContinue(null, matches);
              
            } else {
              
              test = filter[0]
              test(filename, file_path, checkAndContinue);
              
            }
            
            function checkAndContinue(err, matches) {
              
              if (err) {
               
                callback(err);
              
              } else if (matches) {
                
                emitter = new FileEventEmitter(file_path);
                
                continuation(emitter, matches, callback);
                
              } else {
                
                callback(null);
                
              }
            
            }
          
          }
          
        , callback
      );
      
    }
docs: **********************************************************************