Update examples with metadta
diff --git a/mapstructure_examples_test.go b/mapstructure_examples_test.go
index 0e1af6b..7eaba0d 100644
--- a/mapstructure_examples_test.go
+++ b/mapstructure_examples_test.go
@@ -68,3 +68,39 @@
 	// * 'Emails[1]' expected type 'string', got 'int'
 	// * 'Emails[2]' expected type 'string', got 'int'
 }
+
+func ExampleDecode_metadata() {
+	type Person struct {
+		Name   string
+		Age    int
+	}
+
+	// This input can come from anywhere, but typically comes from
+	// something like decoding JSON where we're not quite sure of the
+	// struct initially.
+	input := map[string]interface{}{
+		"name":   "Mitchell",
+		"age":    91,
+		"email": "foo@bar.com",
+	}
+
+	var md Metadata
+	var result Person
+	config := &DecoderConfig{
+		Metadata: &md,
+		Result: &result,
+	}
+
+	decoder, err := NewDecoder(config)
+	if err != nil {
+		panic(err)
+	}
+
+	if err := decoder.Decode(input); err != nil {
+		panic(err)
+	}
+
+	fmt.Printf("Unused keys: %#v", md.Unused)
+	// Output:
+	// Unused keys: []string{"email"}
+}