code: function pathMatchesTrigger(path, trigger) {
    if (trigger) {
      let triggerPath = trigger.name;
      return (triggerPath == path) ||
        (trigger.structured && isAncestor(triggerPath, path)) ||
        (trigger.wildcard && isDescendant(triggerPath, path));
    } else {
      return true;
    }
  }
docs: Determines whether a property/path that has changed matches the trigger
  criteria for an effect.  A trigger is a descriptor with the following
  structure, which matches the descriptors returned from `parseArg`.
  e.g. for `foo.bar.*`:
  ```
  trigger: {
  name: 'a.b',
  structured: true,
  wildcard: true
  }
  ```
  If no trigger is given, the path is deemed to match.
  
  @param {string} path Path or property that changed
  @param {DataTrigger} trigger Descriptor
  @return {boolean} Whether the path matched the trigger