Crumbs calculates breadcrumbs for your site.
It does so by finding the parent of the current page, then the parent of the parent, etc, until it arrives at the home page.
Crumbs comes with a bunch of built-in plugins, that can be individually enabled, disabled and prioritized, and some of which provide further configuration options.
Crumbs plugins have two responsibilities: (1) to determine the parent path for a given path, and (2) to determine the title for a specific breadcrumb link.
Built-in plugins exist for: Menu, Taxonomy, Entity reference, Organic groups, Path aliases, Entityreference prepopulate, Text fields, Forum, Commerce checkout, etc.
Besides, there are configurable token-based patterns to find the parent for entity pages per bundle.
As a fallback behavior, it will always try to find a parent by chopping off the last part of the path. And for the link title, the fallback is whatever was specified with hook_menu().
Fine-grained priority control
Most plugin priorities are further subdivided, to allow even more fine-grained control: By menu name (menu), vocabulary name (taxonomy), field name and entity bundle (entity reference), group content type (organic groups), etc.