diff --git a/context_test.go b/context_test.go
index 1c4303b..8877be9 100644
--- a/context_test.go
+++ b/context_test.go
@@ -19,6 +19,10 @@
 	"testing"
 )
 
+type Walker interface {
+	Walk() bool
+}
+
 type fooModule struct {
 	properties struct {
 		Foo string
@@ -37,6 +41,10 @@
 	return f.properties.Foo
 }
 
+func (f *fooModule) Walk() bool {
+	return true
+}
+
 type barModule struct {
 	properties struct {
 		Bar bool
@@ -55,6 +63,10 @@
 	return b.properties.Bar
 }
 
+func (b *barModule) Walk() bool {
+	return false
+}
+
 func TestContextParse(t *testing.T) {
 	ctx := NewContext()
 	ctx.RegisterModuleType("foo_module", newFooModule)
@@ -99,3 +111,30 @@
 	}
 
 }
+
+// |---B===D       - represents a non-walkable edge
+// A               = represents a walkable edge
+// |===C---E===G
+//     |       |   A should not be visited because it's the root node.
+//     |===F===|   B, D and E should not be walked.
+func TestWalkDeps(t *testing.T) {
+	ctx := NewContext()
+	ctx.RegisterModuleType("foo_module", newFooModule)
+	ctx.RegisterModuleType("bar_module", newBarModule)
+	ctx.ParseBlueprintsFiles("context_test_Blueprints")
+	ctx.ResolveDependencies(nil)
+
+	var output string
+	topModule := ctx.moduleGroups["A"].modules[0]
+	ctx.walkDeps(topModule,
+		func(module, parent Module) bool {
+			if module.(Walker).Walk() {
+				output += ctx.ModuleName(module)
+				return true
+			}
+			return false
+		})
+	if output != "CFG" {
+		t.Fatalf("unexpected walkDeps behaviour: %s\nshould be: CFG", output)
+	}
+}
