Slight flaw in my logic there. Should be checking if property is set, not its value.

public function isFrontPage() {
// Cache the result as this is called often.
- if (!$this->isCurrentFrontPage) {
+ if (!isset($this->isCurrentFrontPage)) {
$this->isCurrentFrontPage = (current_path() == $this->getFrontPagePath());
}

mh. One thing we might should do instead is the following: Change the configuration to internally store a route name + parameters and compare it with the one of the current route match object. Do you have an oppinion?