Crumbs is a powerful breadcrumb-generating engine.
Building the trail, step by step
Starting with the path of the current page, Crumbs finds the parent of the path, then the parent path of the parent, etc, until it has the complete breadcrumb trail.
To do this, Crumbs uses a system of plugins with user-defined priorities. On each step, it will iterate over the plugins until one of them knows the parent path for the current step. And then it moves to the next step.
On each step, Crumbs does only focus on the current step, it does not care what other steps it has calculated before. One path always has the same parent, throughout the site.
Finding a title for each path in the trail
When this procedure is done, Crumbs will do a similar procedure to find the title for each breadcrumb link in the trail. For each link, it will iterate over the plugins, until one of them knows a title. If none of them knows, the title from the router item will be used.
Important:
A breadcrumb item with an empty title will be skipped. A plugin can say "I don't know, let the others decide", but it can also explicitly return an empty title, to remove the link from the breadcrumb.
This behavior can cause some confusion, but is actually quite useful.
Plugin priorities