code: function() {
          var avert,
              parent = this.parent;
  
          if (parent) {
              if (this.eventHandler) {
                  this.eventHandler.call(parent, {
                      type: 'delete',
                      preventDefault: function() { avert = true; }
                  });
              }
              if (!avert) {
                  if (
                      parent.keep || // never "prune" (remove if empty) this particular subexpression
                      parent.children.length > 1 // this node has siblings so will not be empty after this remove
                  ) {
                      // proceed with remove
                      this.el.parentNode.remove(); // the parent is always the containing <li> tag
                      parent.children.splice(parent.children.indexOf(this), 1);
                  } else {
                      // recurse to prune entire subexpression because it's prune-able and would end up empty (childless)
                      parent.remove();
                  }
              }
          }
      }
docs: Remove both:
  * `this` filter node from it's `parent`'s `children` collection; and
  * `this` filter node's `el`'s container (always a `<li>` element) from its parent element.
  @memberOf FilterNode#