code: def CheckPath(self, path, path_segment_separator=None):
      
      if not self._case_sensitive:
        path = path.lower()
  
      if path_segment_separator is None:
        path_segment_separator = self._path_segment_separator
  
      path_segments = path.split(path_segment_separator)
      number_of_path_segments = len(path_segments)
  
      scan_object = self._root_node
      while scan_object:
        if isinstance(scan_object, py2to3.STRING_TYPES):
          break
  
        if scan_object.path_segment_index >= number_of_path_segments:
          scan_object = scan_object.default_value
          continue
  
        path_segment = path_segments[scan_object.path_segment_index]
        scan_object = scan_object.GetScanObject(path_segment)
  
      if not isinstance(scan_object, py2to3.STRING_TYPES):
        return False
  
      filter_path_segments = scan_object.split(self._path_segment_separator)
      return filter_path_segments == path_segments
docs: Checks if a path matches the scan tree-based path filter.
  
      Args:
        path: a string containing the path.
        path_segment_separator: optional string containing the path segment
                                separator. None defaults to the path segment
                                separator that was set when the path filter
                                scan tree was initialized.
  
      Returns:
        A boolean indicating if the path matches the filter.