code: function (fn, cb) {
    return subscribe.call(this, fn, function (value) {
      return VM.createElement(value);
    }, function (value) {
      cb(this.value = VM.setTagName(this.value, value));
    }).value;
  }
docs: Create an element and subscribe to any changes. This method requires a
  callback function for any element changes since you can't change a tag
  name in place.
  
  @param  {Function} fn
  @param  {Function} cb
  @return {Element}