code: public List getMatches(String path)
      {        
          Map.Entry entry;
          Object entries=null;
  
          if (path==null)
              return LazyList.getList(entries);
          
          int l=path.indexOf(';');
          if (l<0)
          {
              l=path.indexOf('?');
              if (l<0)
                  l=path.length();
          }
  
          // try exact match
          entry=_exactMap.getEntry(path,0,l);
          if (entry!=null)
              entries=LazyList.add(entries,entry.getValue());
          
          // prefix search
          int i=l-1;
          while((i=path.lastIndexOf('/',i-1))>=0)
          {
              entry=_prefixMap.getEntry(path,0,i);
              if (entry!=null)
                  entries=LazyList.add(entries,entry.getValue());
          }
          
          // Prefix Default
          if (_prefixDefault!=null)
              entries=LazyList.add(entries,_prefixDefault);
          
          // Extension search
          i=0;
          while ((i=path.indexOf('.',i+1))>0)
          {
              entry=_suffixMap.getEntry(path,i+1,l-i-1);
              if (entry!=null)
                  entries=LazyList.add(entries,entry.getValue());
          }
  
          // Default
          if (_default!=null)
          {
              // Optimization for just the default
              if (entries==null)
                  return _defaultSingletonList;
              
              entries=LazyList.add(entries,_default);
          }
          
          return LazyList.getList(entries);
      }
docs: Get all entries matched by the path.
  Best match first.
  @param path Path to match
  @return List of Map.Entry instances key=pathSpec