diff --git a/example/events.d/match1.yaml b/example/events.d/match1.yaml
index 3a08305..19d501a 100644
--- a/example/events.d/match1.yaml
+++ b/example/events.d/match1.yaml
@@ -4,20 +4,31 @@
 events:
     - name: Example Match(1)
       description: >
-          Matches any PropertiesChanged signal.
+          Sets the value of ExampleProperty1 on /changeme
+          when the value of ExampleProperty2 on
+          /testing/inventory/trigger2 changes to yyyxxx.
       type: match
       signatures:
           - type: signal
             interface: org.freedesktop.DBus.Properties
+            path: /testing/inventory/trigger2
             member: PropertiesChanged
+      filters:
+          - name: propertyChangedTo
+            args:
+              interface: xyz.openbmc_project.Example.Iface2
+              property: ExampleProperty2
+              value:
+                  type: string
+                  value: yyyxxx
       actions:
           - name: setProperty
             args:
               interface: xyz.openbmc_project.Example.Iface1
               property: ExampleProperty1
-              path: /test
+              path: /changeme
               value:
                 type: string
-                value: test
+                value: changed
 
 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/test/test.cpp b/test/test.cpp
index 0a1fbd9..13b8934 100644
--- a/test/test.cpp
+++ b/test/test.cpp
@@ -261,6 +261,54 @@
         }
     }
 
+    // Validate the set property action.
+    {
+        ObjectPath relChangeMe{"/changeme"};
+        ObjectPath relTriggerTwo{"/trigger2"};
+        ObjectPath changeMe{root + relChangeMe};
+        ObjectPath triggerTwo{root + relTriggerTwo};
+
+        // Create an object to be updated by the set property action.
+        {
+            auto m = notify();
+            m.append(relChangeMe);
+            m.append(obj);
+            b.call(m);
+        }
+
+        // Create the triggering object.
+        {
+            auto m = notify();
+            m.append(relTriggerTwo);
+            m.append(obj);
+            b.call(m);
+        }
+
+        // Trigger and validate the change.
+        {
+            SignalQueue queue(
+                    "path='" + changeMe + "',member='PropertiesChanged'");
+            auto m = set(triggerTwo);
+            m.append("xyz.openbmc_project.Example.Iface2");
+            m.append("ExampleProperty2");
+            m.append(sdbusplus::message::variant<std::string>("yyyxxx"));
+            b.call(m);
+
+            std::string sigInterface;
+            std::map<
+                std::string,
+                sdbusplus::message::variant<std::string>> sigProperties;
+            {
+                std::vector<std::string> interfaces;
+                auto sig{queue.pop()};
+                sig.read(sigInterface);
+                assert(sigInterface == "xyz.openbmc_project.Example.Iface1");
+                sig.read(sigProperties);
+                assert(sigProperties["ExampleProperty1"] == "changed");
+            }
+        }
+    }
+
     mgr.shutdown();
     std::cout << "Success!" << std::endl;
 }
