code: function findFiles( root, _filters, index = 0 ) {
      if ( !FS.existsSync( root ) ) return [];
      if ( !isDirectory( root ) ) return [];
  
      const filters = Array.isArray( _filters ) ? _filters : [_filters];
      if ( index >= filters.length ) return [];
  
      let files = [];
      if ( filters.length > index + 1 ) {
          // Looking for directories.
          const filter = filters[ index ];
          FS.readdirSync( root ).forEach(function ( filename ) {
              if ( isDirectory( Path.join( root, filename ) ) ) {
                  if ( !filters || !filter || filter.test( filename ) ) {
                      files = files.concat(findFiles( Path.join( root, filename ), filters, index + 1 ));
                  }
              }
          });
      } else {
          // Looking for files.
          const filter = filters[ index ];
          FS.readdirSync( root ).forEach(function ( filename ) {
              if ( isDirectory( Path.join( root, filename ) ) ) return;
              if ( !filters || !filter || filter.test( filename ) ) {
                  files.push(Path.join( root, filename ));
              }
          });
      }
      return files;
  }
docs: @param {string} root Root folder in which we will search.
  @param {rx|array} _filters  If it is not an array,  it is considered
  as an array  with only one element. In the  array, the last element
  is the regexp of a file to match, the other elements are regexp for
  containing folders.
  If filter is missing, return all files in `root`.
  @param {number} index Used internally for recursion purpose.
  
  @return {array} Array of full pathes of found files.