Not sure if you figured out a way to deep linking.
The below works for me. It basically get the params from url and forms a state and replaces the current(initial) state with it.
// Bind to State Change
History.Adapter.bind(window,'statechange',function(){
// Log the State
var State = History.getState();
History.log('statechange:', State.data, State.title, State.url);
alert("stateChanged - run function");
});
var utils = utils || {};
utils.getParameterByName: function (name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
};
//On page load route to appropriate screen
if(urlParamSection = utils.getParameterByName('section')){
History.replaceState({
section: urlParamSection
}, // This is state's data
'MySite - ' + urlParamSection.toUpperCase(), //Title to the state
window.location.protocol+"//"+window.location.host + "?section=" + urlParamSection // this is actually the page load url
);
}