code: def test_should_get_slots_with_keywords_slot_filler(self):
      # Given
      dataset_stream = io.StringIO(
          """
  ---
  type: intent
  name: SetLightColor
  utterances:
  - set the light to [color](blue) in the [room](kitchen)
  - please make the lights [color](red) in the [room](bathroom)"""
      )
      dataset = Dataset.from_yaml_files("en", [dataset_stream]).json
      intent = "SetLightColor"
      slot_filler = KeywordSlotFiller().fit(dataset, intent)
  
      # When
      slots = slot_filler.get_slots(
          "I want red lights in the kitchen now"
      )
  
      # Then
      expected_slots = [
          unresolved_slot(
              match_range={START: 7, END: 10},
              value="red",
              entity="color",
              slot_name="color",
          ),
          unresolved_slot(
              match_range={START: 25, END: 32},
              value="kitchen",
              entity="room",
              slot_name="room",
          ),
      ]
      self.assertListEqual(slots, expected_slots)
  
file_path: snips-nlu/snips_nlu/tests/test_keyword_slot_filler.py
imports: from __future__ import unicode_literals
  import io
  from snips_nlu import SnipsNLUEngine, NLUEngineConfig
  from snips_nlu.constants import START, END
  from snips_nlu.dataset import Dataset
  from snips_nlu.pipeline.configs import ProbabilisticIntentParserConfig
  from snips_nlu.result import unresolved_slot, custom_slot
  from snips_nlu.slot_filler.keyword_slot_filler import KeywordSlotFiller
  from snips_nlu.tests.utils import FixtureTest
label_desc: Use image node_id 1 for calling the TestKeywordSlotFiller obj's underlying member method code with example usage: obj.test_should_get_slots_with_keywords_slot_filler() without return types