Don't push state if we don't have a fragment identifier
Be more robust in assigning an sbookloc to the final page