public function invalidate(array $conditions)
    {
        if (empty($conditions)) {
            throw new \InvalidArgumentException("cannot invalidate aliases with no conditions");
        }

        $query = $this
            ->database
            ->update('ucms_seo_route')
            ->fields(['is_outdated' => 1])
            ->condition('is_protected', 0)
        ;

        foreach ($conditions as $key => $value) {
            switch ($key) {

                case 'node_id':
                    $query->condition('node_id', $value);
                    break;

                case 'site_id':
                    $query->condition('site_id', $value);
                    break;

                default:
                    throw new \InvalidArgumentException(sprintf("condition '%s' is not supported for aliases invalidation", $key));
            }
        }

        $query->execute();
    }