code: func (p *pathObject) Filter(args ...valFilter) (*pathObject, error) {
  	if len(args) == 0 {
  		return nil, errArgCount{Got: len(args)}
  	}
  	filt := make([]shape.ValueFilter, 0, len(args))
  	for _, f := range args {
  		filt = append(filt, f.f)
  	}
  	np := p.clonePath().Filters(filt...)
  	return p.new(np), nil
  }
docs: // Filter applies constraints to a set of nodes. Can be used to filter values by range or match strings.