How can I override certain breadcrumb segments?
The default breadcrumb builder is defined in the system services file and has the priority 0:

system.services.yml

  system.breadcrumb.default:
    class: Drupal\system\PathBasedBreadcrumbBuilder
    arguments: ['@router.request_context', '@access_manager', '@router', '@path_processor_manager', '@config.factory',  '@title_resolver', '@current_user', '@path.current']
    tags:
      - { name: breadcrumb_builder, priority: 0 }


If you want to turn off the default breadcrumb builder you define one with a higher priority. This is an example for taxonomy terms:

taxonomy.services.yml

services:
  taxonomy_term.breadcrumb:
    class: Drupal\taxonomy\TermBreadcrumbBuilder
    arguments: ['@entity.manager']
    tags:
      - { name: breadcrumb_builder, priority: 1002 }


With the method applies() you choose for which routes the breadcrumb builder should be used:

TermBreadcrumbBuilder::applies()

  public function applies(RouteMatchInterface $route_match) {
    return $route_match-&gt;getRouteName() == 'entity.taxonomy_term.canonical'
      &amp;&amp; $route_match-&gt;getParameter('taxonomy_term') instanceof TermInterface;
  }


The breadcrumb manager checks all applies() methods, starting with the highest priority, until it reaches the default breadcrumb builder, which applies for all routes:

PathBasedBreadcrumbBuilder::applies()

  public function applies(RouteMatchInterface $route_match) {
    return TRUE;
  }