_updateConnectionFilters (filters) {
    let changed = false;
    each(this.connections, (connection) => {
      connection.defaultFiltered = !every(filters.connection, f => f.passes(connection, f.defaultValue));
      const filtered = (!connection.source.isVisible() && !connection.target.isVisible()) || !every(filters.connection, f => f.passes(connection, f.value));
      if (connection.filtered !== filtered) {
        connection.filtered = filtered;
        changed = true;
      }
    });
    if (changed) { this._updateNodeFilters(filters); }
  }
Update the connection filters with the passed in filter configuration.
All connections in this graph will be passed through the updated filters.
If any connection filter status is changed, will also recursively call
_updateNodeFilters(filters) to eliminate the any orphaned nodes or
connections to nowhere.

@param  {object} filters An object map of filters in the form of
                   { node: [], connection: [] }. Each respective array
                   containing filter configuration objects as described in
                   https://github.com/Netflix/Vizceral/wiki/How-to-Use#graph-data-format