Why is my custom parameter converter class not used?
I think the condition in applies() doesn't match with the route parameters, try this:

  public function applies($definition, $name, Route $route) {
    return (!empty($definition['type']) &amp;&amp; $definition['type'] == 'coupon_code_converter');
  }