Disallowed disabling security trimming once it is enabled. This will at least ensure that it can't be tampered with after the Builder does its job.
Removed ResolveSiteMapNode() method and related SiteMapResolve event handler reference and _resolutionTicket private member variable. It is clear that these break encapsulation as a node should only be searched for within the SiteMap object graph. Collapsed other properties for readability.
Removed duplicated logic from different AddNode implementations (already commented previously).
For SiteMap removed unnecessary using statements, moved the using statements to the top of the file, and added comment to describe what the class is for.
Migrated the code that does the localization of title and description fields.
Migrated the code that does the localization of title and description fields.
Moved all localization code to a set of services that manage both the localization logic and state of resource keys.