unsubscribeTo(key, value) {
    if (!value) {
      this.subscriptions[key] = [];
    }
    if (this.subscriptions[key]) {
      this.subscriptions[key].filter((val, index) => {
        if (val.value === value) {
          this.subscriptions[key].splice(index, 1);
        }
      });
    }
  }
Unsubscribes from a previously subscribed key-value pair (or key if no value)
@param {String}  key     Message key to unsubscribe
@param {String}  value   [Optional] Value of the key to unsubscribe
                           If there is no value, unsubscribes from all the values of that key
@return {void}