private function replaceToken($match, $migrate_executable, $row, $destination_property) {
    $tmp = str_replace("[", "", $match[2]);
    $tmp = str_replace("]", "", $tmp);
    $tmp = substr($tmp, 15);
    $uuid = $tmp;
    $output = '';

    try {
      if (!is_string($uuid)) {
        throw new MigrateException('Unable to grab UUID Link');
      }

      Database::setActiveConnection('source_migration');
      $db = Database::getConnection();
      $query = $db->select('node', 'n')
        ->fields('n')
        ->condition('n.uuid', $uuid);
      $nid = $query->execute()->fetchCol();
      Database::setActiveConnection();

      // Lookup the new Node.
      $nid = $this->migrationPlugin
        ->transform($nid[0], $migrate_executable, $row, $destination_property);

      if (is_array($nid)) {
        $nid = current($nid);
      }

      $node = Node::load($nid);
      if (!$node) {
        throw new MigrateException('Could not load node object');
      }

      // New link format.
      $attrBefore = !empty($match[1]) ? $match[1] : '';
      $attrAfter = !empty($match[3]) ? $match[3] : '';

      $output = '
        <a
          data-entity-substitution="canonical"
          data-entity-type="node"
          data-entity-uuid="' . $node->uuid() . '"
          href="/node/' . $nid . '" ' . $attrAfter . ' ' . $attrBefore . '>';
    }
    catch (Exception $e) {
      $msg = t('Unable to render link from %link. Error: %error', ['%link' => $uuid, '%error' => $e->getMessage()]);
      \Drupal::logger('Migration')->error($msg);
      return '';
    }
    return $output;
  }