diff --git a/route/route.go b/route/route.go
index f9251bbcef51371005215b99b1efa58fae17d26a..e6b46ee6bd3e4bd69927f9cb97ec386dae0aaa56 100644
--- a/route/route.go
+++ b/route/route.go
@@ -28,7 +28,7 @@ type Route struct {
 	ecmpPaths uint
 }
 
-// NewRoute generates a new route with paths p
+// NewRoute generates a new route with path p
 func NewRoute(pfx net.Prefix, p *Path) *Route {
 	r := &Route{
 		pfx: pfx,
@@ -43,6 +43,23 @@ func NewRoute(pfx net.Prefix, p *Path) *Route {
 	return r
 }
 
+// NewRouteAddPath generates a new route with paths p
+func NewRouteAddPath(pfx net.Prefix, p []*Path) *Route {
+	r := &Route{
+		pfx: pfx,
+	}
+
+	if p == nil {
+		r.paths = make([]*Path, 0)
+		return r
+	}
+
+	for _, path := range p {
+		r.paths = append(r.paths, path)
+	}
+	return r
+}
+
 // Copy returns a copy of route r
 func (r *Route) Copy() *Route {
 	if r == nil {