diff --git a/lib/wavefront-sdk/validators.rb b/lib/wavefront-sdk/validators.rb
index <HASH>..<HASH> 100644
--- a/lib/wavefront-sdk/validators.rb
+++ b/lib/wavefront-sdk/validators.rb
@@ -230,7 +230,7 @@ module Wavefront
     #   dashboard ID is not valid
     #
     def wf_dashboard_id?(v)
-      return true if v.is_a?(String) && v.size < 256 && v.match(/^\w+$/)
+      return true if v.is_a?(String) && v.size < 256 && v.match(/^[\w\-]+$/)
       raise Wavefront::Exception::InvalidDashboardId
     end
 
diff --git a/spec/wavefront-sdk/validators_spec.rb b/spec/wavefront-sdk/validators_spec.rb
index <HASH>..<HASH> 100755
--- a/spec/wavefront-sdk/validators_spec.rb
+++ b/spec/wavefront-sdk/validators_spec.rb
@@ -115,7 +115,7 @@ class WavefrontValidatorsTest < MiniTest::Test
   end
 
   def test_wf_dashboard_id?
-    good = %w(my_dash S3 123)
+    good = %w(my_dash my-dashboard S3 123)
     bad = ['a' * 260, 'A Dashboard Name', 'and_1_more!', {}, [], 1234]
     good_and_bad('wf_dashboard_id?', 'InvalidDashboardId', good, bad)
   end
dashes are allowed in dashboard IDs

which they ought to be!