: A [Glob](https://github.com/gobwas/glob) pattern matching the content path below /content. Expects Unix-styled slashes. Note that this is the virtual path, so it starts at the mount root. The matching support double-asterisks so you can match for patterns like `/blog/*/**` to match anything from the third level and down.
 
 kind
-: The Page's Kind, e.g. "section".
+: A Glob pattern matching the Page's Kind(s), e.g. "{home,section}".
 
 lang
 : A Glob pattern matching the Page's language, e.g. "{en,sv}".
 
        "path/filepath"
        "strings"
 
-       "github.com/pkg/errors"
-
        "github.com/gohugoio/hugo/common/maps"
        "github.com/gohugoio/hugo/hugofs/glob"
        "github.com/mitchellh/mapstructure"
+       "github.com/pkg/errors"
 )
 
 // A PageMatcher can be used to match a Page with Glob patterns.
 
        v.Kind = strings.ToLower(v.Kind)
        if v.Kind != "" {
-               if _, found := kindMap[v.Kind]; !found {
-                       return errors.Errorf("%q is not a valid Page Kind", v.Kind)
+               g, _ := glob.GetGlob(v.Kind)
+               found := false
+               for _, k := range kindMap {
+                       if g.Match(k) {
+                               found = true
+                               break
+                       }
+               }
+               if !found {
+                       return errors.Errorf("%q did not match a valid Page Kind", v.Kind)
                }
        }
 
 
 
        c.Run("Decode", func(c *qt.C) {
                var v PageMatcher
-               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "foo"}, &v), qt.Not((qt.IsNil)))
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "foo"}, &v), qt.Not(qt.IsNil))
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "{foo,bar}"}, &v), qt.Not(qt.IsNil))
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "taxonomy"}, &v), qt.IsNil)
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "{taxonomy,foo}"}, &v), qt.IsNil)
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "{taxonomy,term}"}, &v), qt.IsNil)
+               c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "*"}, &v), qt.IsNil)
                c.Assert(DecodePageMatcher(map[string]interface{}{"kind": "home", "path": filepath.FromSlash("/a/b/**")}, &v), qt.IsNil)
                c.Assert(v, qt.Equals, PageMatcher{Kind: "home", Path: "/a/b/**"})
        })