JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>

JavaScript

// and the function that parses the query string can be something like : 
function parseQueryString (queryString){
    var params = {};
    if(queryString){
        _.each(
            _.map(decodeURI(queryString).split(/&/g),function(el,i){
                var aux = el.split('='), o = {};
                if(aux.length >= 1){
                    var val = undefined;
                    if(aux.length == 2)
                        val = aux[1];
                    o[aux[0]] = val;
                }
                return o;
            }),
            function(o){
                _.extend(params,o);
            }
        );
    }
    return params;
}
var router = Backbone.Router.extend({
    routes: {
       'posts': 'showPosts',
       'posts?*queryString' : 'showPosts'
    },
    showPosts: function (queryString) {
        params = parseQueryString(queryString);
        window.q = queryString;
        if(params.foo){
            // foo parameters was passed
            alert('foo=' + params.foo);
        }
    }
});  
var Router = new router;
Backbone.history.start();

Router.navigate('posts?foo=bar',{trigger:true,replace:true});